<?php

Loader::using("models::entities::Solicitudes");

/**
 * Description of VerSolicitudesPendientes
 *
 * @export Modules
 */
class VerSolicitudesPendientes extends Module {

    public function index() {
        $Solicitudes = $this->model->applications->GetByEstado(EstadoSolicitud::Registrada);

        $this->assign("solicitudes", $Solicitudes);
        $this->assign("verSolicitud", $this->route->action("VerSolicitud", array("SolicitudId" => "",)));
        $this->display();
    }

    public function VerSolicitud() {
        $id = $this->request->get("SolicitudId");
        $solicitud = $this->model->applications->GetById($id);

        $municipio = $solicitud->getMunicipio();
        $departamento = $municipio->getDepartamento();

        $idPais = $departamento->getCodigoPais();
        $idDepartamento = $municipio->getCodigoDepartamento();
        $idMunicipio = $municipio->getCodigoMunicipio();

        $Paises = $this->model->countries->GetAll(false);
        $Departamentos = $this->model->states->GetByPais($idPais, false);
        $Municipios = $this->model->cities->GetByStates($idDepartamento, false);

        $this->assign("Paises", $Paises);
        $this->assign("idPais", $idPais);

        $this->assign("Departamentos", $Departamentos);
        $this->assign("idDepartamento", $idDepartamento);

        $this->assign("Municipios", $Municipios);
        $this->assign("idMunicipio", $idMunicipio);

        $this->assign("solicitud", $solicitud);

        $this->assign("GetDepartamentos", $this->route->moduleAction("PublicData", "GetDepartamentoByPais", array("ajax" => "true", "IdPais" => ""))
        );

        $this->assign("GetMunicipios", $this->route->moduleAction("PublicData", "GetMunicipio", array("ajax" => "true", "CodigoDepartamento" => ""))
        );
        $this->assign("action", $this->route->action("SeleccionarPracticante", array("SolicitudId" => $id,)));

        $this->display();
    }

    /**
     * @export-metadata Bind:this.Solicitud
     */
    public function SeleccionarPracticante() {

        $this->Solicitud->setEstado(EstadoSolicitud::Procesada);
        $this->Solicitud->getPracticanteActual()->setIdSolicitud($this->Solicitud->getIdSolicitud());
        $this->Solicitud->getPracticanteActual()->setIsRemunerado($this->Solicitud->getPracticanteActual()->getRemuneracion() > 0);

        $this->model->applications->Update($this->Solicitud);

        $this->display();
    }

    private $Solicitud;

    public function getSolicitud() {

        if (!$this->Solicitud) {
            $this->Solicitud = $this->model->applications->GetById($this->request->get("SolicitudId"));
            Loader::using("models::entities::Practicantes");
            $solicitud->setPracticanteActual(new Practicantes());
        }
        
        return $this->Solicitud;
    }

}

?>
